热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

外层|偏差_我们需要什么样的敏捷开发?

篇首语:本文由编程笔记#小编为大家整理,主要介绍了我们需要什么样的敏捷开发?相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了我们需要什么样的敏捷开发?相关的知识,希望对你有一定的参考价值。




回答敏捷是什么?为什么要敏捷?回答“为什么要敏捷”的前提是回答“敏捷是什么”,因此首要任务是要先回答第一个问题,从敏捷技术的观点看,核心是敏捷价值观、敏捷价值观外层为敏捷管理,比如XP或者Scrum;最外层为敏捷技术实践,比如CI、TDD和结对编程等技术,从这个结构看最里层是一种敏捷文化、中间层为软件开发过程管理方法,最外层为具体技术实践,因此敏捷运行核心要素是通过软件开发过程管理方法连接内层敏捷价值观和外层敏捷开发技术实践,对外呈现出一种开发模式和方法。

敏捷一词对于我们来讲已经不再陌生,在业界已经成为一种软件开发活动的推荐模式。那为什么要敏捷?

这个答案很多,每个开发者心中都有一个自己答案,其实答案本身并不重要,重要是思考的过程。这个问题也没有一个标准答案,就像每个软件开发男都有一个自己心中的女神,女神可能是不一样的,女神是否相同并不重要。

言归正传,个人观点如下。回答敏捷是什么?为什么要敏捷?回答“为什么要敏捷”的前提是回答“敏捷是什么”,因此首要任务是要先回答第一个问题,从敏捷技术的观点看,核心是敏捷价值观、敏捷价值观外层为敏捷管理,比如XP或者Scrum;最外层为敏捷技术实践,比如CI、TDD和结对编程等技术,从这个结构看最里层是一种敏捷文化、中间层为软件开发过程管理方法,最外层为具体技术实践,因此敏捷运行核心要素是通过软件开发过程管理方法连接内层敏捷价值观和外层敏捷开发技术实践,对外呈现出一种开发模式和方法。

其次回答第二个问题,首先要解决敏捷不可替换价值在哪里?如果说敏捷是交付有价值的软件产品,那么非敏捷方式难道就不能交付有价值的软件产品?这个推论站不住脚,我们同样也可以使用非敏捷方法交付有价值的软件产品,现在仍然有大量的软件产品按照非敏捷的方式进行开发,同样也在交付价值。在我看来,一个字可以回答“为什么要敏捷”,这个字在于“变”,我们需求的变化。

三种场景需要敏捷开发

在我看来,需求的变化有以下三种场景:

场景一,需求从用户环节到开发环节,这个漫长的需求链条在传递过程中出现了关键信息丢失,导致软件开发产品交付后,与用户需求严重不一致,导致软件重大改动、甚至重新设计;

场景二,用户对于需求的描述定义不准确,导致软件开发产品开发出现偏差,软件产品交付后,需要软件进行重大改动、甚至重新设计;

场景三,需求本身已经有了变化和位移,移动互联网发展非常快,需求本身可能每天都在变化,即使你搞清楚了之前的需求,等你软件产品交付后,该需求已经不成立或者有了重大变化和位移,也会导致软件重大改动、甚至重新设计;

需求变化这么快,需求有可能存在偏差,怎么办?解决方法,可以看看电影功夫中的片段,快,足够的快,快得很抓住子弹。本着“天下功夫,无坚不破,唯快不破”的原则,提升我们软件开发的速度,适应这种变化。

两种途径提高开发速度

怎么能够提升我们软件开发的速度,敏捷方法提供了2个解决途径:

第一 提升人件,通过敏捷团队运作,激发出每一队员的最大潜能,以最大合力完成软件产品开发。就拿敏捷中Scrum来说,Scrum的原始含义,就是橄榄球比赛对抗,要让团队最大力量集中起来,集中一点,取得突破。如何能够激发出每个人的最大潜能,让自己当老板,让自己成为软件产品的老板,软件产品就是我自己,通过自组织团队,让开发人员真正的当家作主,成为软件开发的主人,以此激发队员的最大潜能;同时敏捷文化鼓励队员之间的技术交流和分享,在这种技术交流和分享过程中提升开发人员的自身水平和能力,达到个体战斗力的最大化。

第二 软件开发过程提升,软件开发过程包括需求分析、系统设计、编码、测试、交付、部署、上线这些环节,要做到快速,就必须从多方面入手。

首先,需要把大需求拆分为小需求、从一次完成大而全软件系统交付转换为每次提供一个核心和关键功能最小软件系统快速交付,及时获取用户反馈,这样即使在需求环节出现偏差,也可以减低对于软件产品开发影响,减小需求偏离度,提升软件产品准确命中用户需求要点的能力;

其次,需要提升整个软件开发弹性,引入代码走查、鼓励重构、结对编码和编码风格调整这些举措,让软件编码具有弹性,可以让软件对于后续变化和需求快速响应;

再者,由于需求经常变化,随时都会对于软件进行改动,为了保证软件产品具备快速交付能力,必须通过持续构建来解决系统经常代码改动对于软件产品交付能力的影响,分散产品发布带来的风险;通过自动测试来进行回归测试、集成测试以及系统测试,通过机器测试来换取测试压缩,解决人力测试无法满足测试路径快速覆盖的场景,随时具备软件产品交付能力。

综上所述,敏捷的核心要素在于快,通过人件和软件开发融合发力,实现软件开发过程“快”,以快来取得“准”,以“准”来破“变”,实现软件产品价值成功交付。




推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 如何在WPS Office for Mac中调整Word文档的文字排列方向
    本文将详细介绍如何使用最新版WPS Office for Mac调整Word文档中的文字排列方向。通过这些步骤,用户可以轻松更改文本的水平或垂直排列方式,以满足不同的排版需求。 ... [详细]
author-avatar
Lollipop小呆_971
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有